home *** CD-ROM | disk | FTP | other *** search
- {Returns a string or an integer, what ever you want}
- {You fix for leap year}
-
- unit dow;
- interface
-
- const
- saDayOfWeek : array [0..6] of string =
- ('Monday','Tuesday','Wednesday','Thursday',
- 'Friday','Saturday','Sunday');
-
- type
- spString = ^string;
-
- function IntDow(yyyy,mm,dd : integer) : integer;
- function StrDow(yyyy,mm,dd : integer) : spString;
-
- implementation
-
- function IntDow(yyyy,mm,dd : integer) : integer;
- var
- iAddVal : shortint;
- begin
- if mm < 3 then iAddVal := 1 else iAddVal := 0;
- IntDow := (((3*(yyyy)-(7*((yyyy)+((mm)+9) div 12))
- div 4+(23*(mm)) div 9+(dd)+2
- +(((yyyy)-iAddVal) div 100+1)*3 div 4-16) mod 7));
- end;
-
- function StrDow(yyyy,mm,dd : integer): spString;
- var
- sReturnString : string;
- begin
- sReturnString := saDayOfWeek[IntDow(yyyy, mm, dd)];
- StrDow := @sReturnString;
- end;
- end.
- {test file}
-
- uses dow;
- begin
- write(StrDow(1995, 10,08)^);
- end.